In a multi-programming environment, the optimal management of resources is critical to the performance of the computer system. In particular, in a system that requires the allocation of devices, such as for example, tape devices, optical devices, unit record devices and printers, it is important to optimize the allocation and usage of the devices such that performance requirements of the system are met.
Previously, attempts have been made to optimize the allocation of devices by, for instance, using devices that do not require operator or accessor (a robotic mechanism used to automate the mounting or loading of volumes on one or more devices) involvement to satisfy a volume mount on a device. In addition, devices have been selected and used which minimize accessor travel to mount the device when accessor involvement is necessary. This helps to increase the number of volume mounts that can be satisfied within a particular time frame, thus increasing system throughput and performance.
Further, attempts to optimize device allocation in systems such as, for instance, International Business Machine's Multiple Virtual Storage (MVS) system, have included a technique in which device requests are satisfied by locally optimizing on each data definition statement representing a device request. That is, if the system receives, for instance, three device requests, then the most preferable device for the first request will be allocated and then the next available preferable device for the second request will be assigned, and so forth. This local optimization scheme can create a situation in which the assignment or allocation solution for the three devices taken as a group is not optimal, thereby degrading system performance. It is possible, for example, that the best overall solution to improve system performance would not include allocating to the first request its preference device, but to allocate instead, for example, its second preference.
Therefore, a need exists for a technique in which it is not necessary to satisfy device requests on a first come, first serve basis. Further, a need exists for globally optimizing the allocation of devices required for a number of device requests generated from, for example, a job step. A further need exists for a method and system for allocating devices such that system throughput for jobs requiring volume mounts and device allocation is increased and system performance is enhanced.